#include <iostream>
#include <string>
#include <cctype>

// 简易分词器类
class SimpleTokenizer {
public:
    // 构造函数，接收一个字符串作为输入
    SimpleTokenizer(const std::string& input) : input_(input), pos_(0) {}

    // 获取下一个分词的方法
    std::string getNextToken() {
        skipWhitespace();
        if (pos_ >= input_.length()) {
            return "";
        }

        if (input_[pos_] == ',') {
            pos_++;
            return ",";
        }

        // 检测是否为引号包裹的内容
        if (input_[pos_] == '"' || input_[pos_] == '\'') {
            char quote = input_[pos_++];
            std::string token;
            while (pos_ < input_.length() && input_[pos_] != quote) {
                token += input_[pos_++];
            }
            if (pos_ < input_.length() && input_[pos_] == quote) {
                pos_++; // 跳过结束引号
            }
            return token;
        }

        std::string token;
        while (pos_ < input_.length() && !std::isspace(input_[pos_]) && input_[pos_] != ',') {
            token += input_[pos_++];
        }
        return token;
    }

    // 检查是否还有更多分词的方法
    bool hasNextToken() const {
        size_t tempPos = pos_;
        skipWhitespace(tempPos);
        return tempPos < input_.length();
    }

private:
    std::string input_;
    size_t pos_;

    // 跳过空白字符
    void skipWhitespace(size_t& pos) const {
        while (pos < input_.length() && std::isspace(input_[pos])) {
            pos++;
        }
    }

    // 跳过空白字符
    void skipWhitespace() {
        skipWhitespace(pos_);
    }
};
